1. Field of the Invention
The present invention relates to IP communication between terminals connected to networks of different protocols and more specifically to a technique for interconnecting IEEE 1394 networks and IP networks.
2. Description of the Related Art
When an internet protocol packet is relayed between local area networks of different protocols, it is the usual practice to terminate the packet at layer 2 and examine its target address at layer 3, and then forward the packet to an appropriate interface.
The current practice is useful for building large scale networks where the address on one side of a boundary point differs from the address on the other side. However, the use of the current practice for large scale networks is not justified for applications where the number of user terminals is relatively small. Particularly, servers would be installed for communications between terminals.
A method has been standardized by IETF (Internet Engineering Task Force) for networking a number of local area networks of different protocols into a logically single network as RFC 925 (Request for Comment 925 “Multi-LAN Address Resolution”). In this method, a repeater acts as a proxy ARP server for each terminal to process ARP (Address Resolution Protocol) packets. In order for an IP packet repeater to repeat unicast packets between an IEEE 1394 network and an IEEE 802.x network, the repeater is required to perform header translation by rewriting the source address of a packet from a terminal to the physical address of the repeater when the repeater broadcasts an ARP packet to obtain the physical address, or GUID (Global unique ID) of a 1394 terminal and is required to associate the GUID with the physical address, or MAC address of the 802x terminal and their IP addresses.
If a device is attached to the IEEE 1394 bus, a bus reset is triggered and the entire bus is reconfigured automatically. This bus initialization consists of three phases: reset, tree identification and self identification. During the first phase all nodes are informed of a bus reset occurrence. In the succeeding phase the topology of the bus is determined. The last phase is responsible for assigning every device a physical ID. To recognize a device after a bus reset a global unique identifier (GUID) is used for unique addressing.
In response to the ARP request packet, the packet repeater reads the sender IP address field, the GUID field, the sender unicast FIFO field and sets the contents of these fields into the IP address field, the GUID field and the sender unicast FIFO field (available for the receipt of IP datagrams) of an ARP packet management table, respectively. The packet repeater rewrites the ARP packet from the IEEE 1394 format to the IEEE 802.x format by reading the sender and target IP addresses from the 1394 ARP packet into the 802.x ARP packet and setting all zeros in the target MAC address field of the 802.x ARP packet and the repeater's MAC address in the sender MAC address field of the 802.x ARP packet.
The 802.x ARP packet is then encapsulated in an 802.x frame which contains an 802.x header in which the target MAC address field is set to all zeros and the sender MAC address field is set with the repeater MAC address. The frame is then broadcast to all terminals of the 802.x network. Since the sender MAC address field of the frame is set with the repeater MAC address, all recipient terminals on the 802.x network recognize that the repeater is the sender of the packet. As a result, an ARP reply packet which will be sent from a targeted 802.x terminal is destined to the packet repeater.
The MAC address and the IP address of the targeted 802.x terminal are set in the sender MAC address field and the sender IP address field of this ARP reply packet, respectively. The MAC address of the packet repeater is set in the target MAC address field and the IP address of the 1394 terminal is set in the target IP address field of the ARP reply packet.
When the packet repeater receives this ARP reply packet, it reads a copy of its MAC address of the targeted 802.x terminal from the sender MAC address and sets the copy into the MAC address field of the ARP management table, and reads a copy of the IP address of the targeted 802.x terminal from the sender IP address field and sets the copy into the IP address field.
The ARP reply packet is then encapsulated in an IEEE 1394 packet containing an Asynchronous Block Write (ABW) header in which the unicast FIFO of the requesting 1394 terminal is set in its offset address field, and transmitted from the packet repeater to the 1394 network.
When the requesting 1394 terminal transmits a packet to the target 802.x terminal after the ARP procedure, the 1394 terminal formulates a packet by setting the IP address of the 802.x terminal in the destination address field and specifying the GUID and unicast FIFO of the packet repeater and forwards the packet. On receiving the packet, the packet repeater recognizes that it is targeted and retransmits this packet to the target 802.x terminal. When a packet is transmitted from the 802.x terminal to the 1394 terminal, the 802.x terminal sets the IP address of the 1394 terminal in the destination address field of the packet and specifies the MAC address of the repeater.
During a session, the packet repeater reads the IP address set in a packet received on one side of the repeater as a key to search the ARP packet management table for a corresponding set of MAC address, GUID and unicast FIFO of the destination terminal and rewrites the destination address of the received packet for transmission to the other side of the repeater.
On the other hand, PPPoE (Point to Point Protocol (PPP) over Ethernet (802.3) protocol has been developed to establish a PPP connection over Ethernet. This protocol is divided into two stages according to different modes of communication. In the first stage, called discovery stage, a connection is established between a non-1394 host terminal and a PPPoE server (or node) which can be used as an access concentrator. The host terminal specifies a MAC address of the server to acquire a session identifier. In the subsequent stage, or session stage, in which a session is established to an internet service provider to perform an IP communication using the assigned session identifier. When the session is terminated, the discovery stage is resumed. Discovery and session stages can be distinguished from each other by a value set in the Ethernet-type field of the IP 1394 packet and a value set in the Ethernet-type field of the 802.x packet. If an IEEE 802.x terminal initiates a communication, it sends a PADI (PPPoE Active Discovery Initiation) packet which specifies a service name that the host requests. Since the non-1394 host terminal has no knowledge of the MAC address of the PPPoE server during the discovery stage, it broadcasts a PADI packet to the network. In response, a PPPoE server replies with a PADO (PPPoE Active Discovery Offer) packet to the host terminal, which contains the name of the server and a service name supported. The host terminal responds to this PADO packet by returning a PADR (PPPoE Active Discovery Request) packet which contains the service name and the PPPoE server's name which were previously set in the PADO packet. When the PPPoE server receives this packet, it transmits a PADS (PPPoE Active Discovery Session Confirmation) packet in which a session identifier is set corresponding to the requested service name. When the host terminal receives this PADS packet, a session stage begins. During the session stage, an IP connection specified by the session identifier is performed between the host terminal and the Internet. The session stage is terminated when the host terminal or the access controller transmits a PADT (PPPoE Active Discovery Terminate) packet.
However, the 1394 network cannot accommodate the point-to-point protocol. Therefore, if a 1394 network were connected to an 802.x network, host terminals could not transmit PPP packets. If a PPP connection were established in a system where a 1394 network and an 802.x network are interconnected by a packet repeater, both of the packet repeater and the 1394 terminal cannot acquire destination address at the start of a PPP connection. More specifically, since unicast sessions between 1394 terminals cannot proceed only with a Global Unique Identifier, a unicast FIFO Identifier (i.e., a register address of a device attached to a 1394 serial bus) is additionally required to specify the destination 1394 node that is attached to the 1394 serial bus of the host terminal. However, the host terminal must broadcast an ARP packet to obtain the register address of the destination node by indicating its IP address. Since the host terminal is not assigned an IP address prior to the establishment of a PPP connection and since the ARP procedure requires an IP address, the host terminal cannot rely on the ARP procedure to acquire the address of a destination, and hence it cannot identify the correspondent terminal. Therefore, PPP connections cannot be established between 1394 host terminals.